// plugins/v-counter.js
export default defineNuxtPlugin((nuxtApp) => {
    // 不再是 import Vue from 'vue'的写法了
	nuxtApp.vueApp.directive('auth', {
        // 不用mounted，在mounted时用户权限集还是空的
		updated(el, {
			arg, // role | permission
			value, // string | array
		}) {
			if (typeof value == 'string') {
				value = [value];
			}
 
            // 用户信息，这里面有属性 role | permission
			const userInfo = useState('userInfo');
			const userAuth = userInfo.value?.[arg]; // 用户的角色|权限集
 
			if (!userAuth) {
				removeEl(el);
			}
 
			let hasAuth = false;
			for (const item of value) {
				if (userAuth.includes(item)) {
					// 用户拥有传入的权限
					hasAuth = true;
					break;
				}
			}
 
			if (!hasAuth) {
				removeEl(el);
			}
		}
	})
})
 
// 移除元素
const removeEl = (el) => el.parentNode && el.parentNode.removeChild(el);